home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / windownt / uupc11ys.zip / NMAKE < prev   
Text File  |  1993-04-17  |  45KB  |  1,432 lines

  1. #       Program:        nmake                      15 May 1989
  2. #       Author:         Andrew H. Derbyshire
  3. #                       P. O. Box 132
  4. #                       Arlington, MA 02174
  5. #       Function:       Build UUPC/extended from source files
  6. #       Processor:      Microsoft nmake
  7. #       External files: MASM            (8088 Assembler)
  8. #                       CL              (Microsoft C 6.0 compiler)
  9. #                       LINK or         (MS-DOS Linker)
  10. #                       LINK386         (OS/2 Linker)
  11. #                       Input source files.
  12. #
  13. #       Copyright (c) 1990-1993 by Kendra Electronic Wonderworks;
  14. #       all rights reserved except those explicitly granted by
  15. #       the UUPC/extended license.
  16. #
  17. #       nmk /nologo /s /f nmake installR
  18. #       nmk /nologo /s /f nmake installP
  19. #
  20. #       $Id: NMAKE 1.18 1993/04/17 13:40:13 ahd Exp $
  21. #
  22. #       $Log: NMAKE $
  23. #         Revision 1.18  1993/04/17  13:40:13  ahd
  24. #         Fix win/32 header build
  25. #
  26. #         Revision 1.17  1993/04/16  13:11:15  dmwatt
  27. #         Build win/nt header file less often
  28. #
  29. #         Revision 1.16  1993/04/16  12:55:11  dmwatt
  30. #         Add support for special Win/NT version id header
  31. #
  32. #         Revision 1.15  1993/04/14  02:42:33  ahd
  33. #         Fix uucp target name for Windows/NT
  34. #
  35. #         Revision 1.14  1993/04/14  00:44:19  ahd
  36. #         Drop use of FMT from ZIP file build
  37. #         Add Windows/NT zip file build
  38. #         Add credit for Dave and Windows/NT Build
  39. #
  40. #         Revision 1.13  1993/04/10  21:24:27  dmwatt
  41. #         Add Windows/NT support
  42. #
  43. #    Revision 1.11  1993/04/05  12:25:39  ahd
  44. #    Clean up .def files
  45. #
  46. #    Revision 1.10  1993/04/05  04:31:27  ahd
  47. #    HPFS support (module definition files)
  48. #
  49. #    Revision 1.9  1993/04/04  04:55:31  ahd
  50. #    Add uunamep.exe to testp: build
  51. #
  52. #    Revision 1.8  1993/03/24  01:57:13  ahd
  53. #    rn support
  54. #
  55. #    Revision 1.7  1993/03/06  22:47:10  ahd
  56. #    Generic build, including rn.exe
  57. #
  58. #    Revision 1.6  1993/01/23  19:07:01  ahd
  59. #    Revise alias
  60. #
  61. #    Revision 1.5  1992/12/04  00:58:57  ahd
  62. #    Add sysalias to rmail build
  63. #
  64. #    Revision 1.5  1992/12/04  00:58:57  ahd
  65. #    Add sysalias to rmail build
  66. #
  67. #    Revision 1.4  1992/11/29  22:12:36  ahd
  68. #    Correct TMP directory to TEMP
  69. #    Add installation of OS/2 CMD files from RCS source directory
  70. #    Change copyright message
  71. #    Add build for TESTULIB.EXE
  72. #
  73. #    Revision 1.3  1992/11/27  14:37:55  ahd
  74. #    Add scrsize() to library build
  75. #
  76. #    Revision 1.2  1992/11/22  21:04:42  ahd
  77. #    Add normalize() to build
  78.  
  79. .SUFFIXES: .c .asm .zip .obj
  80.  
  81. # *--------------------------------------------------------------------*
  82. # *     Note:   By default, this file generates code for 80286         *
  83. # *             systems and above.  If you are generating              *
  84. # *             UUPC/extended for a 8088 system, remove the /G2        *
  85. # *             option from the CCOPT= line, below                     *
  86. # *--------------------------------------------------------------------*
  87.  
  88. # *--------------------------------------------------------------------*
  89. # *   Our release number.  This is updated each time we ship it        *
  90. # *   out to some unsuspecting user, or sometimes when we do a         *
  91. # *   major fix even if we don't ship it out to the lusers.  ANY       *
  92. # *   VERSION NOT DONE ON kendra SHOULD BE TAGGED AS N.NNAm, WHERE     *
  93. # *   N.NNA IS THE NUMBER UUPC was shipped as, and 'm' any string      *
  94. # *   to indentify your special version.  Just upping the              *
  95. # *   distributed version number will confuse you AND me.              *
  96. # *--------------------------------------------------------------------*
  97.  
  98. VERS = 1.11y
  99.  
  100. # *--------------------------------------------------------------------*
  101. # *   The memory model to be built.  (Ignored by 32 bit compilers)     *
  102. # *--------------------------------------------------------------------*
  103.  
  104. MODEL   = M
  105.  
  106. # *--------------------------------------------------------------------*
  107. # *                  Windows NT generic make include file              *
  108. # *--------------------------------------------------------------------*
  109.  
  110. !IFDEF WINNT
  111. !include <ntwin32.mak>
  112. !ENDIF
  113.  
  114. # *--------------------------------------------------------------------*
  115. # *   Various directories.  The TEMP directory is not defined here;    *
  116. # *   rather we expect it to be defined as part of the user's          *
  117. # *   environment variables                                            *
  118. # *--------------------------------------------------------------------*
  119.  
  120. SRC     = .
  121. MAIL    = $(SRC)\mail
  122. UTIL    = $(SRC)\util
  123. UUCP    = $(SRC)\uucp
  124. RNEWS   = $(SRC)\rnews
  125. LIBX    = $(SRC)\lib
  126. TEST    = $(SRC)\test
  127. UUCICO  = $(SRC)\uucico
  128.  
  129. !IFDEF WINNT
  130. OBJ     = .
  131. !ELSE
  132. OBJ     = $(SRC)\msobj$(MODEL)
  133. !ENDIF
  134.  
  135. SBR     = $(SRC)\sbr
  136. PRODP   = \uupc\os2bin
  137. PRODR   = \uupc\bin
  138. PRODN   = \uupc\ntbin
  139. !IFDEF WINNT
  140. MSLIB   = \mstools\lib
  141. !ELSE
  142. MSLIB   = \c600\lib
  143. !ENDIF
  144. SCRIPTS = $(SRC)\scripts
  145.  
  146. DEFFILE = $(TEMP)\$(@B).def
  147.  
  148. # *--------------------------------------------------------------------*
  149. # *                        Various file names                          *
  150. # *--------------------------------------------------------------------*
  151.  
  152. WNTZIPVA = $(SRC)\$(VERS)\uupcw32a.zip
  153. WNTZIPVB = $(SRC)\$(VERS)\uupcw32b.zip
  154. WNTZIPVC = $(SRC)\$(VERS)\uupcw32c.zip
  155. OS2ZIPV2 = $(SRC)\$(VERS)\uupcos22.zip
  156. OS2ZIPV3 = $(SRC)\$(VERS)\uupcos23.zip
  157. OS2ZIPV4 = $(SRC)\$(VERS)\uupcos24.zip
  158. LIBCOMM  = $(TEMP)\$(MODEL)uupcmsc.lib
  159. LIBNT    = $(TEMP)\uupcnt.lib
  160. LIBOS2   = $(TEMP)\$(MODEL)uupcos2.lib
  161. LIBDOS   = $(TEMP)\$(MODEL)uupcdos.lib
  162. WORKFILE = $(TEMP)\UUPCTEMP.TMP
  163.  
  164. # *--------------------------------------------------------------------*
  165. # *         Library names; season to taste and configuration           *
  166. # *--------------------------------------------------------------------*
  167.  
  168. NTLIBS=$(MSLIB)\libc.lib $(LIBCOMM) $(LIBNT) $(conlibs) ADVAPI32.LIB
  169. OS2LIBS=$(MSLIB)\$(MODEL)libcep+$(LIBCOMM)+$(LIBOS2)+$(MSLIB)\os2
  170. DOSLIBS=$(MSLIB)\$(MODEL)libce+$(LIBCOMM)+$(LIBDOS)
  171.  
  172. # *--------------------------------------------------------------------*
  173. # *        The names of various object files that we create.           *
  174. # *--------------------------------------------------------------------*
  175.  
  176. TIMESTMP = $(OBJ)\timestmp.obj
  177. LIBLIST = $(OBJ)\active.obj \
  178.           $(OBJ)\arbmath.obj $(OBJ)\arpadate.obj $(OBJ)\bugout.obj\
  179.           $(OBJ)\chdir.obj $(OBJ)\checkptr.obj $(OBJ)\configur.obj\
  180.           $(OBJ)\catcher.obj $(OBJ)\dater.obj $(OBJ)\expath.obj\
  181.           $(OBJ)\export.obj $(OBJ)\filebkup.obj $(OBJ)\fopen.obj $(OBJ)\getargs.obj\
  182.           $(OBJ)\getopt.obj $(OBJ)\getseq.obj $(OBJ)\hostable.obj\
  183.           $(OBJ)\importng.obj $(OBJ)\dos2unix.obj\
  184.           $(OBJ)\hostatus.obj $(OBJ)\hostrset.obj $(OBJ)\import.obj\
  185.           $(OBJ)\kanjicnv.obj $(OBJ)\lock.obj $(OBJ)\logger.obj\
  186.           $(OBJ)\mkdir.obj $(OBJ)\mkfilenm.obj $(OBJ)\mkmbox.obj\
  187.           $(OBJ)\mktempnm.obj $(OBJ)\normaliz.obj $(OBJ)\printmsg.obj\
  188.           $(OBJ)\pushpop.obj $(OBJ)\readnext.obj $(OBJ)\rename.obj\
  189.           $(OBJ)\security.obj $(OBJ)\stater.obj $(OBJ)\strpool.obj\
  190.           $(OBJ)\usertabl.obj $(OBJ)\validcmd.obj $(TIMESTMP)
  191.  
  192. LIBDOSLIST= $(OBJ)\ndir.obj $(OBJ)\printerr.obj $(OBJ)\ssleep.obj\
  193.             $(OBJ)\getdta.obj $(OBJ)\safeio.obj $(OBJ)\safeout.obj\
  194.             $(OBJ)\scrsize.obj
  195. LIBOS2LIST= $(OBJ)\ndiros2.obj $(OBJ)\printerr.obj $(OBJ)\ssleep2.obj\
  196.             $(OBJ)\safeio2.obj $(OBJ)\safeout2.obj $(OBJ)\scrsize2.obj
  197.  
  198. LIBNTLIST=  $(OBJ)\ndirnt.obj $(OBJ)\printerr.obj $(OBJ)\ssleep.obj\
  199.             $(OBJ)\safeio.obj $(OBJ)\safeout.obj $(OBJ)\scrsiznt.obj\
  200.             $(OBJ)\setstdin.obj
  201.  
  202. # *--------------------------------------------------------------------*
  203. # *             Object file lists for specific programs                *
  204. # *--------------------------------------------------------------------*
  205.  
  206. MAILCOMOBJ = $(OBJ)\mail.obj $(OBJ)\address.obj $(OBJ)\mailblib.obj\
  207.           $(OBJ)\maillib.obj $(OBJ)\mailsend.obj \
  208.           $(OBJ)\alias.obj
  209.  
  210. MAILROBJ  = $(MAILCOMOBJ) $(OBJ)\mlib.obj
  211. MAILPOBJ  = $(MAILCOMOBJ) $(OBJ)\mlib2.obj
  212. MAILNOBJ  = $(MAILCOMOBJ) $(OBJ)\mlib.obj
  213.  
  214. UUCPOBJ = $(OBJ)\address.obj $(OBJ)\uucp.obj
  215.  
  216. RNEWSOBJ = $(OBJ)\rnews.obj $(OBJ)\history.obj
  217. EXPIREOBJ = $(OBJ)\expire.obj
  218.  
  219. RMAILCOMOBJ = $(OBJ)\address.obj $(OBJ)\rmail.obj $(OBJ)\sysalias.obj
  220.  
  221. RMAILPOBJ  = $(RMAILCOMOBJ) $(OBJ)\deliver2.obj
  222. RMAILROBJ  = $(RMAILCOMOBJ) $(OBJ)\deliver.obj
  223. RMAILNOBJ  = $(RMAILCOMOBJ) $(OBJ)\deliver.obj
  224.  
  225. UUCICOOBJ1 = $(OBJ)\checktim.obj $(OBJ)\dcp.obj $(OBJ)\dcpfpkt.obj \
  226.              $(OBJ)\dcpgpkt.obj $(OBJ)\dcplib.obj $(OBJ)\dcpstats.obj\
  227.              $(OBJ)\dcpsys.obj $(OBJ)\dcpxfer.obj
  228. UUCICOOBJ2 = $(OBJ)\modem.obj $(OBJ)\script.obj $(OBJ)\uucico.obj
  229. UUCICOPOBJ3 = $(OBJ)\nbstime2.obj $(OBJ)\ulibos2.obj
  230. UUCICOROBJ3 = $(OBJ)\nbstime.obj  $(OBJ)\ulib.obj $(OBJ)\commfifo.obj
  231. UUCICONOBJ3 = $(OBJ)\nbstime.obj $(OBJ)\ulibos2.obj
  232.  
  233. RNOBJ1=$(OBJ)\addng.obj $(OBJ)\art.obj $(OBJ)\artio.obj $(OBJ)\artsrch.obj\
  234.        $(OBJ)\backpage.obj $(OBJ)\bits.obj $(OBJ)\cheat.obj $(OBJ)\final.obj
  235. RNOBJ2=$(OBJ)\head.obj $(OBJ)\help.obj $(OBJ)\init.obj $(OBJ)\intrp.obj\
  236.        $(OBJ)\kfile.obj $(OBJ)\last.obj $(OBJ)\ng.obj $(OBJ)\ngdata.obj
  237. RNOBJ3=$(OBJ)\ngsrch.obj $(OBJ)\ngstuff.obj $(OBJ)\only.obj $(OBJ)\rcln.obj\
  238.        $(OBJ)\rcstuff.obj $(OBJ)\respond.obj $(OBJ)\rn.obj $(OBJ)\search.obj\
  239.        $(OBJ)\sw.obj $(OBJ)\term.obj $(OBJ)\util.obj $(OBJ)\uudecode.obj \
  240.        $(OBJ)\rnpclib.obj
  241. RNOBJ=$(RNOBJ1) $(RNOBJ2) $(RNOBJ3)
  242.  
  243. NEWSETUPOBJ=$(OBJ)\newsetup.obj $(OBJ)\rnlib.obj
  244.  
  245. UUSUBOBJ = $(OBJ)\uusub.obj
  246.  
  247. UUSTATOBJ = $(OBJ)\uustat.obj
  248.  
  249. UUXQTOBJ = $(OBJ)\uuxqt.obj
  250.  
  251. UUXOBJ = $(OBJ)\uux.obj
  252.  
  253. POLLNOBJ  = $(OBJ)\uupoll.obj
  254. POLLPOBJ  = $(OBJ)\uupoll2.obj
  255. POLLROBJ  = $(OBJ)\uupoll.obj
  256.  
  257. # *--------------------------------------------------------------------*
  258. # *      Lists of programs to built for various pseudo targets         *
  259. # *--------------------------------------------------------------------*
  260.  
  261. EXECR   = mailr.exe rmailr.exe rnewsr.exe\
  262.           uupollr.exe uucicor.exe uucpr.exe\
  263.           uusubr.exe uustatr.exe uuxqtr.exe uuxr.exe
  264. EXECP   = mailp.exe rmailp.exe rnewsp.exe\
  265.           uupollp.exe uucicop.exe uucpp.exe\
  266.           uusubp.exe uustatp.exe uuxqtp.exe uuxp.exe
  267. EXECN   = mailn.exe rmailn.exe rnewsn.exe\
  268.           uupolln.exe uucicon.exe uucpn.exe\
  269.           uusubn.exe uustatn.exe uuxqtn.exe uuxn.exe
  270.  
  271.  
  272. ICONS   = $(PRODP)\mail.ico $(PRODP)\uucico.ico
  273. INSTALLP = $(INSTALLP2) $(INSTALLP3) $(INSTALLP4) $(INSTALLPS)
  274. INSTALLR = $(PRODR)\mail.exe $(PRODR)\rmail.exe $(PRODR)\rnews.exe\
  275.           $(PRODR)\uupoll.exe $(PRODR)\uucico.exe $(PRODR)\uucp.exe\
  276.           $(PRODR)\uusub.exe $(PRODR)\uuxqt.exe $(PRODR)\uux.exe\
  277.           $(PRODR)\uustat.exe  $(PRODR)\rn.exe $(PRODR)\newsetup.exe
  278.  
  279. INSTALLP2= $(PRODP)\mail.exe $(PRODP)\rmail.exe $(PRODP)\uucico.exe\
  280.           $(PRODP)\uuxqt.exe
  281. INSTALLP3= $(PRODP)\uucp.exe $(PRODP)\uuname.exe $(PRODP)\uupoll.exe\
  282.           $(PRODP)\uustat.exe $(PRODP)\uusub.exe\
  283.           $(PRODP)\uux.exe $(FMT) $(PRODP)\gensig.exe $(PRODP)\novrstrk.exe \
  284.           $(PRODP)\su.cmd $(PRODP)\uuio.cmd $(PRODP)\uuclean.cmd\
  285.           $(PRODP)\waiting.cmd $(PRODP)\mailchek.cmd
  286. INSTALLP4= $(PRODP)\rnews.exe $(PRODP)\expire.exe
  287. #         $(PRODP)\rn.exe $(PRODP)\newsetup.exe
  288.  
  289. INSTALLN2= $(PRODN)\mail.exe $(PRODN)\rmail.exe $(PRODN)\uucico.exe\
  290.           $(PRODN)\uuxqt.exe
  291. INSTALLN3= $(PRODN)\uucp.exe $(PRODN)\uuname.exe $(PRODN)\uupoll.exe\
  292.           $(PRODN)\uustat.exe $(PRODN)\uusub.exe\
  293.           $(PRODN)\uux.exe $(FMT) $(PRODN)\gensig.exe $(PRODN)\novrstrk.exe \
  294.           $(PRODN)\su.bat $(PRODN)\uuio.bat $(PRODN)\uuclean.bat\
  295.           $(PRODN)\waiting.bat
  296. INSTALLN4= $(PRODN)\rnews.exe $(PRODN)\expire.exe
  297. #         $(PRODN)\rn.exe $(PRODN)\newsetup.exe
  298.  
  299. # *--------------------------------------------------------------------*
  300. # *   Source browser files; because of space limitations, these        *
  301. # *   are not always generated unless you change the C compiler        *
  302. # *   options.                                                         *
  303. # *--------------------------------------------------------------------*
  304.  
  305. # *--------------------------------------------------------------------*
  306. # *     This needs to be expanded too *all* the OBJ files ... but      *
  307. # *     not today, as the Wonderworks doesn't use it.                  *
  308. # *--------------------------------------------------------------------*
  309. SBRS = $(LIBDOSLIST:obj=sbr)
  310.  
  311. # *--------------------------------------------------------------------*
  312. # *                   Anf, of course, our makefile                     *
  313. # *--------------------------------------------------------------------*
  314.  
  315. MAKEFILE = $(SRC)\nmake
  316.  
  317. # *--------------------------------------------------------------------*
  318. # *      Define the linker used and the options related to it.         *
  319. # *--------------------------------------------------------------------*
  320.  
  321. #       Could use link386 under OS/2 2.0, but doesn't work if cross
  322. #       compiled to older OS/2 1.3 system.
  323.  
  324. !IFDEF WINNT
  325. LINKER = $(link)
  326. !ELSE
  327. LINKER  = link
  328. !ENDIF
  329.  
  330. LINKPOPT = /exepack /far /noignorecase /nod /batch
  331.  
  332. LINKNOPT = $(conflags) $(ldebug)
  333.  
  334. #       No /exepack under DOS, DOS 5 can be confused by it.
  335. LINKROPT = /batch /far /noignorecase /stack:30000
  336.  
  337. # *--------------------------------------------------------------------*
  338. # *                     Microsoft Assembler name                       *
  339. # *--------------------------------------------------------------------*
  340.  
  341. MASM    = masm.exe
  342.  
  343. #MASMOPTS = /DUUPC /DDEBUG /n /v /t /z /W2 /ZD /Mx
  344. MASMOPTS = /DUUPC /n /v /t /z /W2 /ZI /ZD /Mx
  345.  
  346. # *--------------------------------------------------------------------*
  347. # *                      C compiler and options                        *
  348. # *--------------------------------------------------------------------*
  349.  
  350. # *--------------------------------------------------------------------*
  351. # *   Add /Zi for Codeview debugging information, and change the       *
  352. # *   /exepack option to /codeview on the linker options (above).      *
  353. # *                                                                    *
  354. # *   Add /FR$(SBR)\$(@B).sbr to generate source browser files.        *
  355. # *   (I had to delete the this because of space considerations        *
  356. # *   on kendra.)                                                      *
  357. # *                                                                    *
  358. # *   Also, delete /Ocegilt (optimizer options) and /Gs (no stack      *
  359. # *   overflow checking) if debugging and having problems.  Note       *
  360. # *   stack overflow *is* checked in printmsg(), which is called       *
  361. # *   by most if not all deep routines.                                *
  362. # *                                                                    *
  363. # *   Delete the /G2 if building for an 8086 based system.             *
  364. # *--------------------------------------------------------------------*
  365.  
  366. !IFNDEF WINNT
  367. CC      = cl
  368. # CC is defined in ntwin32.mak, so no need for an ELSE clause here
  369. !ENDIF
  370.  
  371.  
  372. !IFDEF WINNT
  373. CCOPT   = $(cflags) $(cvars) -I$(LIBX)
  374.  
  375. {lib}.c.obj:
  376.         $(CC) $(CCOPT) $<
  377.  
  378. {mail}.c.obj:
  379.         $(CC) $(CCOPT) $<
  380.  
  381. {rn}.c.obj:
  382.         $(CC) $(CCOPT) $<
  383.  
  384. {rnews}.c.obj:
  385.         $(CC) $(CCOPT) $<
  386.  
  387. {test}.c.obj:
  388.         $(CC) $(CCOPT) $<
  389.  
  390. {uucico}.c.obj:
  391.         $(CC) $(CCOPT) $<
  392.  
  393. {uucp}.c.obj:
  394.         $(CC) $(CCOPT) $<
  395.  
  396. {util}.c.obj:
  397.         $(CC) $(CCOPT) $<
  398.  
  399. !ELSE
  400.  
  401. #       Use this CCOPT for debugging; the /FR is optional.
  402. #CCOPT   = /I$(LIBX) /A$(MODEL) /c /W4 /nologo /G2 /Fo$@ /Od /FR$(SBR)\$(@B).sbr /Zi /Or /DUDEBUG /DFAMILY
  403.  
  404. #       Use this CCOPT for productiom (/DFAMILY for OS/2 only)
  405. CCOPT   = /I$(LIBX) /A$(MODEL) /c /W4 /nologo /G2 /Fo$@ /Ocegilt
  406.  
  407. {lib}.c{$(OBJ)}.obj:
  408.         $(CC) $(CCOPT) $<
  409.  
  410. {mail}.c{$(OBJ)}.obj:
  411.         $(CC) $(CCOPT) $<
  412.  
  413. {rn}.c{$(OBJ)}.obj:
  414.         $(CC) $(CCOPT) /W3 $<
  415.  
  416. {rnews}.c{$(OBJ)}.obj:
  417.         $(CC) $(CCOPT) $<
  418.  
  419. {test}.c{$(OBJ)}.obj:
  420.         $(CC) $(CCOPT) $<
  421.  
  422. {uucico}.c{$(OBJ)}.obj:
  423.         $(CC) $(CCOPT) $<
  424.  
  425. {uucp}.c{$(OBJ)}.obj:
  426.         $(CC) $(CCOPT) $<
  427.  
  428. {util}.c{$(OBJ)}.obj:
  429.         $(CC) $(CCOPT) $<
  430. !ENDIF
  431.  
  432. # *--------------------------------------------------------------------*
  433. # *     Phil Katz's PKZIP, for creating the distributed archive        *
  434. # *--------------------------------------------------------------------*
  435.  
  436. ZIP     = pkzip
  437.  
  438. # *--------------------------------------------------------------------*
  439. # *                Begin rules for building modules.                   *
  440. # *--------------------------------------------------------------------*
  441.  
  442. # *--------------------------------------------------------------------*
  443. # *        The first definition is the one built by default.           *
  444. # *--------------------------------------------------------------------*
  445.  
  446. # *--------------------------------------------------------------------*
  447. # *   testp builds the basic OS/2 UUPC modules in the source           *
  448. # *   directory.                                                       *
  449. # *--------------------------------------------------------------------*
  450.  
  451. !IFDEF WINNT
  452. testN:  $(OBJ) mailn.exe rmailn.exe uucicon.exe\
  453.         uupolln.exe uucpn.exe uusubn.exe uustatn.exe uuxn.exe uuxqtn.exe\
  454.         uunamen.exe gensign.exe expiren.exe rnewsn.exe rnn.exe newsetpn.exe
  455.         - del $(LIBCOMM)
  456.         - del $(LIBOS2)
  457. !ELSE
  458. testP:  $(OBJ) mailp.exe rmailp.exe uucicop.exe\
  459.         uupollp.exe uucpp.exe uusubp.exe uustatp.exe uuxp.exe uuxqtp.exe\
  460.         uunamep.exe gensigp.exe expirep.exe rnewsp.exe rnp.exe newsetpp.exe
  461.         - del $(LIBCOMM)
  462.         - del $(LIBOS2)
  463. !ENDIF
  464.  
  465. # *--------------------------------------------------------------------*
  466. # *   testr builds the basic MS-DOS UUPC modules in the source         *
  467. # *   directory.                                                       *
  468. # *--------------------------------------------------------------------*
  469.  
  470. testR:  $(OBJ) expirer.exe mailr.exe rmailr.exe rnewsr.exe uucicor.exe\
  471.         uupollr.exe uucpr.exe\
  472.         uusubr.exe uustatr.exe uuxr.exe uuxqtr.exe \
  473.         gensigr.exe rnr.exe newsetpr.exe
  474.         - del $(LIBCOMM)
  475.         - del $(LIBDOS)
  476.  
  477. # *--------------------------------------------------------------------*
  478. # *   Prod build the basic modules and then moves them to $(PROD)      *
  479. # *--------------------------------------------------------------------*
  480.  
  481. prodn:  $(OBJ) $(INSTALLN) regen
  482.         - del $(LIBCOMM)
  483.         - del $(LIBNT)
  484.  
  485.  
  486. prodp:  $(OBJ) $(INSTALLP) regen
  487.         - del $(LIBCOMM)
  488.         - del $(LIBOS2)
  489.  
  490.  
  491. prodr:  $(OBJ) $(INSTALLR)
  492.         - del $(LIBCOMM)
  493.         - del $(LIBOS2)
  494.  
  495. installn:  $(OBJ) $(INSTALLN) $(WNTZIPVA) $(WNTZIPVB)  $(WNTZIPVC)
  496.         - del $(LIBCOMM)
  497.         - del $(LIBNT)
  498.  
  499. installp:  $(OBJ) $(INSTALLP) $(OS2ZIPV2) $(OS2ZIPV3)  $(OS2ZIPV4)
  500.         - del $(LIBCOMM)
  501.         - del $(LIBOS2)
  502.  
  503. installr:  prodr
  504.  
  505. !IFDEF WINNT
  506. zip:    installn
  507. !ELSE
  508. zip:    installp
  509. !ENDIF
  510.  
  511. # *--------------------------------------------------------------------*
  512. # *          Do a purge of various temporary output files.             *
  513. # *--------------------------------------------------------------------*
  514.  
  515. clean:  xclean
  516.         - del $(SRC)\*.bak
  517.         - del *.map
  518.         - del $(WORKFILE)
  519.  
  520. # *--------------------------------------------------------------------*
  521. # *      Do a clean of just executable files and related files.        *
  522. # *--------------------------------------------------------------------*
  523.  
  524. xclean:
  525.         - del $(OBJ)\*.obj
  526.         - del $(OBJ)\*.exe
  527.         - del $(TEMP)\*.lib
  528.         - del $(SRC)\*.obj
  529.         - del $(SRC)\*.exe
  530.         - del $(SBR)\*.sbr
  531.  
  532. # *--------------------------------------------------------------------*
  533. # *             Read mode (DOS) production executables                 *
  534. # *--------------------------------------------------------------------*
  535.  
  536. $(PRODR)\expire.exe: expirer.exe
  537.         - del $@
  538.         move $? $@
  539.  
  540. $(PRODR)\mail.exe: mailr.exe
  541.         - del $@
  542.         move $? $@
  543.  
  544. $(PRODR)\rmail.exe: rmailr.exe
  545.         - del $@
  546.         move $? $@
  547.  
  548. $(PRODR)\rnews.exe: rnewsr.exe
  549.         - del $@
  550.         move $? $@
  551.  
  552. $(PRODR)\uucp.exe: uucpr.exe
  553.         - del $@
  554.         move $? $@
  555.  
  556. $(PRODR)\uucico.exe: uucicor.exe
  557.         - del $@
  558.         move $? $@
  559.  
  560. $(PRODR)\uupoll.exe: uupollr.exe
  561.         - del $@
  562.         move $? $@
  563.  
  564. $(PRODR)\uusub.exe: uusubr.exe
  565.         - del $@
  566.         move $? $@
  567.  
  568. $(PRODR)\uustat.exe: uustatr.exe
  569.         - del $@
  570.         move $? $@
  571.  
  572. $(PRODR)\uuxqt.exe: uuxqtr.exe
  573.         - del $@
  574.         move $? $@
  575.  
  576. $(PRODR)\uux.exe: uuxr.exe
  577.         - del $@
  578.         move $? $@
  579.  
  580. $(PRODP)\rn.exe: rnp.exe
  581.         - del $@
  582.         move $? $@
  583.  
  584. $(PRODR)\rn.exe: rnr.exe
  585.         - del $@
  586.         move $? $@
  587.  
  588. $(PRODP)\newsetup.exe: newsetpp.exe
  589.         - del $@
  590.         move $? $@
  591.  
  592. $(PRODR)\newsetup.exe: newsetpr.exe
  593.         - del $@
  594.         move $? $@
  595.  
  596. # *--------------------------------------------------------------------*
  597. # *             Protected mode (OS/2) production modules               *
  598. # *--------------------------------------------------------------------*
  599.  
  600. $(PRODP)\expire.exe: expirep.exe
  601.         - del $@
  602.         move $? $@
  603.  
  604. $(PRODP)\fmt.exe: fmtp.exe
  605.         - del $@
  606.         move $? $@
  607.  
  608. $(PRODP)\gensig.exe: gensigp.exe
  609.         - del $@
  610.         move $? $@
  611.  
  612. $(PRODR)\gensig.exe: gensigr.exe
  613.         - del $@
  614.         move $? $@
  615.  
  616. $(PRODP)\mail.exe: mailp.exe
  617.         - del $@
  618.         move $? $@
  619.  
  620. $(PRODP)\novrstrk.exe: novrstrp.exe
  621.         - del $@
  622.         move $? $@
  623.  
  624. $(PRODP)\rmail.exe: rmailp.exe
  625.         - del $@
  626.         move $? $@
  627.  
  628. $(PRODP)\rnews.exe: rnewsp.exe
  629.         - del $@
  630.         move $? $@
  631.  
  632. $(PRODP)\uucp.exe: uucpp.exe
  633.         - del $@
  634.         move $? $@
  635.  
  636. $(PRODP)\uucico.exe: uucicop.exe
  637.         - del $@
  638.         move $? $@
  639.  
  640. $(PRODP)\uupoll.exe: uupollp.exe
  641.         - del $@
  642.         move $? $@
  643.  
  644. $(PRODP)\uusub.exe: uusubp.exe
  645.         - del $@
  646.         move $? $@
  647.  
  648. $(PRODP)\uustat.exe: uustatp.exe
  649.         - del $@
  650.         move $? $@
  651.  
  652. $(PRODP)\uuxqt.exe: uuxqtp.exe
  653.         - del $@
  654.         move $? $@
  655.  
  656. $(PRODP)\uux.exe: uuxp.exe
  657.         - del $@
  658.         move $? $@
  659.  
  660. $(PRODP)\uuname.exe: uunamep.exe
  661.         - del $@
  662.         move $? $@
  663.  
  664. $(PRODP)\uuio.cmd: $(SCRIPTS)\uuio.cmd
  665.         copy $? $@
  666.  
  667. $(PRODP)\waiting.cmd: $(SCRIPTS)\waiting.cmd
  668.         copy $? $@
  669.  
  670. $(PRODP)\su.cmd: $(SCRIPTS)\su.cmd
  671.         copy $? $@
  672.  
  673. $(PRODP)\mailchek.cmd: $(SCRIPTS)\mailchek.cmd
  674.         copy $? $@
  675.  
  676. $(PRODP)\uuclean.cmd: $(SCRIPTS)\uuclean.cmd
  677.         copy $? $@
  678.  
  679. # *--------------------------------------------------------------------*
  680. # *       Protected mode (Windows/NT) production modules               *
  681. # *--------------------------------------------------------------------*
  682.  
  683. $(PRODN)\expire.exe: expiren.exe
  684.         - del $@
  685.         move $? $@
  686.  
  687. $(PRODN)\fmt.exe: fmtn.exe
  688.         - del $@
  689.         move $? $@
  690.  
  691. $(PRODN)\gensig.exe: gensign.exe
  692.         - del $@
  693.         move $? $@
  694.  
  695. $(PRODR)\gensig.exe: gensigr.exe
  696.         - del $@
  697.         move $? $@
  698.  
  699. $(PRODN)\mail.exe: mailn.exe
  700.         - del $@
  701.         move $? $@
  702.  
  703. $(PRODN)\novrstrk.exe: novrstrn.exe
  704.         - del $@
  705.         move $? $@
  706.  
  707. $(PRODN)\rmail.exe: rmailn.exe
  708.         - del $@
  709.         move $? $@
  710.  
  711. $(PRODN)\rnews.exe: rnewsn.exe
  712.         - del $@
  713.         move $? $@
  714.  
  715. $(PRODN)\uucp.exe: uucpn.exe
  716.         - del $@
  717.         move $? $@
  718.  
  719. $(PRODN)\uucico.exe: uucicon.exe
  720.         - del $@
  721.         move $? $@
  722.  
  723. $(PRODN)\uupoll.exe: uupolln.exe
  724.         - del $@
  725.         move $? $@
  726.  
  727. $(PRODN)\uusub.exe: uusubn.exe
  728.         - del $@
  729.         move $? $@
  730.  
  731. $(PRODN)\uustat.exe: uustatn.exe
  732.         - del $@
  733.         move $? $@
  734.  
  735. $(PRODN)\uuxqt.exe: uuxqtn.exe
  736.         - del $@
  737.         move $? $@
  738.  
  739. $(PRODN)\uux.exe: uuxn.exe
  740.         - del $@
  741.         move $? $@
  742.  
  743. $(PRODN)\uuname.exe: uunamen.exe
  744.         - del $@
  745.         move $? $@
  746.  
  747. $(PRODN)\uuio.bat: $(SCRIPTS)\uuio.bat
  748.         copy $? $@
  749.  
  750. $(PRODN)\waiting.bat: $(SCRIPTS)\waiting.bat
  751.         copy $? $@
  752.  
  753. $(PRODN)\su.bat: $(SCRIPTS)\su.bat
  754.         copy $? $@
  755.  
  756. $(PRODN)\mailchek.bat: $(SCRIPTS)\mailchek.bat
  757.         copy $? $@
  758.  
  759. $(PRODN)\uuclean.bat: $(SCRIPTS)\uuclean.bat
  760.         copy $? $@
  761.  
  762. # *--------------------------------------------------------------------*
  763. # *               The commands to actually link files                  *
  764. # *--------------------------------------------------------------------*
  765.  
  766. expiren.exe: $(EXPIREOBJ) $(LIBCOMM) $(LIBNT)
  767.         $(LINKER) $(LINKNOPT) /OUT:$@ $(EXPIREOBJ) $(NTLIBS)
  768.  
  769. expirep.exe: $(DEFFILE) $(EXPIREOBJ) $(LIBCOMM) $(LIBOS2)
  770.         $(LINKER) $(LINKPOPT) @<<
  771. $(EXPIREOBJ)
  772. $@,NUL,$(OS2LIBS)
  773. $(DEFFILE)
  774. <<
  775.  
  776. expirer.exe:     $(EXPIREOBJ)  $(LIBCOMM) $(LIBDOS)
  777.         $(LINKER) $(LINKROPT) @<<
  778. $(EXPIREOBJ)
  779. $@,NUL,$(DOSLIBS);
  780. <<
  781.  
  782. fmtn.exe: $(OBJ)\fmt.obj $(LIBCOMM) $(LIBNT)
  783.         $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\fmt.obj $(NTLIBS)
  784.  
  785. fmtp.exe: $(DEFFILE) $(OBJ)\fmt.obj $(LIBCOMM) $(LIBOS2)
  786.         $(LINKER) $(LINKPOPT) @<<
  787. $(OBJ)\fmt.obj
  788. $@,NUL,$(OS2LIBS)
  789. $(DEFFILE)
  790. <<
  791.  
  792. gensign.exe: $(OBJ)\gensig.obj $(LIBCOMM) $(LIBNT)
  793.         $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\gensig.obj $(NTLIBS)
  794.  
  795. gensigp.exe:     $(DEFFILE) $(OBJ)\gensig.obj $(LIBCOMM) $(LIBOS2)
  796.         $(LINKER) $(LINKPOPT) @<<
  797. $(OBJ)\gensig.obj
  798. $@,NUL,$(OS2LIBS)
  799. $(DEFFILE)
  800. <<
  801.  
  802. gensigr.exe:     $(OBJ)\gensig.obj $(LIBCOMM) $(LIBDOS)
  803.         $(LINKER) $(LINKROPT) @<<
  804. $(OBJ)\gensig.obj
  805. $@,NUL,$(DOSLIBS);
  806. <<
  807.  
  808. novrstrn.exe: $(OBJ)\novrstrk.obj $(LIBCOMM) $(LIBNT)
  809.         $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\novrstrk.obj $(NTLIBS)
  810.  
  811. novrstrp.exe:     $(DEFFILE) $(OBJ)\novrstrk.obj $(LIBCOMM) $(LIBOS2)
  812.         $(LINKER) $(LINKPOPT) @<<
  813. $(OBJ)\novrstrk.obj
  814. $@,NUL,$(OS2LIBS)
  815. $(DEFFILE)
  816. <<
  817.  
  818. mailn.exe: $(MAILNOBJ) $(LIBCOMM) $(LIBNT)
  819.         $(LINKER) $(LINKNOPT) /OUT:$@ $(NTLIBS) $(MAILNOBJ)
  820.  
  821. mailp.exe:         $(DEFFILE) $(MAILPOBJ) $(LIBCOMM) $(LIBOS2)
  822.         $(LINKER) $(LINKPOPT) @<<
  823. $(MAILPOBJ)
  824. $@,NUL,$(OS2LIBS)
  825. $(DEFFILE)
  826. <<
  827.  
  828. mailr.exe:     $(MAILROBJ) $(LIBCOMM) $(LIBDOS)
  829.         $(LINKER) $(LINKROPT) @<<
  830. $(MAILROBJ)
  831. $@,NUL,$(DOSLIBS);
  832. <<
  833.  
  834. newsetpn.exe: $(NEWSETUPOBJ) $(LIBCOMM) $(LIBNT)
  835.         $(LINKER) $(LINKNOPT) /OUT:$@ $(NEWSETUPOBJ) $(NTLIBS)
  836.  
  837. newsetpp.exe:     $(DEFFILE) $(NEWSETUPOBJ) $(LIBCOMM) $(LIBOS2)
  838.         $(LINKER) $(LINKPOPT) @<<
  839. $(NEWSETUPOBJ)
  840. $@,NUL,$(OS2LIBS)
  841. $(DEFFILE)
  842. <<
  843.  
  844. newsetpr.exe:        $(NEWSETUPOBJ) $(LIBCOMM) $(LIBDOS)
  845.         $(LINKER) $(LINKROPT) @<<
  846. $(NEWSETUPOBJ)
  847. $@,NUL,$(DOSLIBS);
  848. <<
  849.  
  850. rnn.exe: $(RNOBJ) $(LIBCOMM) $(LIBNT)
  851.         $(LINKER) $(LINKNOPT) /OUT:$@ $(RNOBJ1) $(RNOBJ2) $(RNOBJ3) $(NTLIBS)
  852.  
  853. rnp.exe:        $(DEFFILE) $(RNOBJ) $(LIBCOMM) $(LIBOS2)
  854.         $(LINKER) $(LINKPOPT) @<<
  855. $(RNOBJ1)+
  856. $(RNOBJ2)+
  857. $(RNOBJ3)
  858. $@,NUL,$(OS2LIBS)
  859. $(DEFFILE)
  860. <<
  861.  
  862. rnr.exe:        $(RNOBJ) $(LIBCOMM) $(LIBDOS)
  863.         $(LINKER) $(LINKROPT) @<<
  864. $(RNOBJ1)+
  865. $(RNOBJ2)+
  866. $(RNOBJ3)
  867. $@,NUL,$(DOSLIBS);
  868. <<
  869.  
  870. rmailn.exe: $(RMAILNOBJ) $(LIBCOMM) $(LIBNT)
  871.         $(LINKER) $(LINKNOPT) /OUT:$@ $(RMAILNOBJ) $(NTLIBS)
  872.  
  873. rmailp.exe:     $(DEFFILE) $(RMAILPOBJ) $(LIBCOMM) $(LIBOS2)
  874.         $(LINKER) $(LINKPOPT) @<<
  875. $(RMAILPOBJ)
  876. $@,NUL,$(OS2LIBS)
  877. $(DEFFILE)
  878. <<
  879.  
  880. rmailr.exe:     $(RMAILROBJ) $(LIBCOMM) $(LIBDOS)
  881.         $(LINKER) $(LINKROPT) @<<
  882. $(RMAILROBJ)
  883. $@,NUL,$(DOSLIBS);
  884. <<
  885.  
  886. rnewsn.exe: $(RNEWSOBJ) $(LIBCOMM) $(LIBNT)
  887.         $(LINKER) $(LINKNOPT) /OUT:$@ $(RNEWSOBJ) $(NTLIBS)
  888.  
  889. rnewsp.exe:     $(DEFFILE) $(RNEWSOBJ) $(LIBCOMM) $(LIBOS2)
  890.         $(LINKER) $(LINKPOPT) @<<
  891. $(RNEWSOBJ)
  892. $@,NUL,$(OS2LIBS)
  893. $(DEFFILE)
  894. <<
  895.  
  896. rnewsr.exe:     $(RNEWSOBJ)  $(LIBCOMM) $(LIBDOS)
  897.         $(LINKER) $(LINKROPT) @<<
  898. $(RNEWSOBJ)
  899. $@,NUL,$(DOSLIBS);
  900. <<
  901.  
  902. uucicon.exe: $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICONOBJ3) \
  903.                   $(LIBCOMM) $(LIBNT)
  904.         $(LINKER) $(LINKNOPT) /OUT:$@ $(NTLIBS) $(UUCICOOBJ1) $(UUCICOOBJ2) \
  905.            $(UUCICONOBJ3)
  906.  
  907. uucicop.exe:      $(DEFFILE) $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICOPOBJ3) \
  908.                   $(LIBCOMM) $(LIBOS2)
  909.         $(LINKER) $(LINKPOPT) @<<
  910. $(UUCICOOBJ1)+
  911. $(UUCICOOBJ2)+
  912. $(UUCICOPOBJ3)
  913. $@,NUL,$(OS2LIBS)
  914. $(DEFFILE)
  915. <<
  916.  
  917. uucicor.exe:     $(UUCICOOBJ1) $(UUCICOOBJ2) $(UUCICOROBJ3)\
  918.                   $(LIBCOMM) $(LIBDOS)
  919.         $(LINKER) $(LINKROPT) @<<
  920. $(UUCICOOBJ1)+
  921. $(UUCICOOBJ2)+
  922. $(UUCICOROBJ3)
  923. $@,NUL,$(DOSLIBS);
  924. <<
  925.  
  926. uucpn.exe: $(UUCPOBJ) $(LIBCOMM) $(LIBNT)
  927.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUCPOBJ) $(NTLIBS)
  928.  
  929. uucpp.exe:     $(DEFFILE) $(UUCPOBJ) $(LIBCOMM) $(LIBOS2)
  930.         $(LINKER) $(LINKPOPT) @<<
  931. $(UUCPOBJ)
  932. $@,NUL,$(OS2LIBS)
  933. $(DEFFILE)
  934. <<
  935.  
  936. uucpr.exe:     $(UUCPOBJ) $(LIBCOMM) $(LIBDOS)
  937.         $(LINKER) $(LINKROPT) @<<
  938. $(UUCPOBJ)
  939. $@,NUL,$(DOSLIBS);
  940. <<
  941.  
  942. uunamen.exe: $(OBJ)\uuname.obj $(LIBCOMM) $(LIBNT)
  943.         $(LINKER) $(LINKNOPT) /OUT:$@ $(OBJ)\uuname.obj $(NTLIBS)
  944.  
  945. uunamep.exe:     $(DEFFILE) $(OBJ)\uuname.obj $(LIBCOMM) $(LIBOS2)
  946.         $(LINKER) $(LINKPOPT) @<<
  947. $(OBJ)\uuname.obj
  948. $@,NUL,$(OS2LIBS)
  949. $(DEFFILE)
  950. <<
  951.  
  952. uupolln.exe: $(POLLNOBJ) $(LIBCOMM) $(LIBNT)
  953.         $(LINKER) $(LINKNOPT) /OUT:$@ $(POLLNOBJ) $(NTLIBS)
  954.  
  955. uupollp.exe:     $(DEFFILE)  $(POLLPOBJ) $(LIBCOMM) $(LIBOS2)
  956.         $(LINKER) $(LINKPOPT) @<<
  957. $(POLLPOBJ)
  958. $@,NUL,$(OS2LIBS)
  959. $(DEFFILE)
  960. <<
  961.  
  962. uupollr.exe:      $(POLLROBJ)  $(LIBCOMM) $(LIBDOS)
  963.         $(LINKER) $(LINKROPT) @<<
  964. $(POLLROBJ)
  965. $@,NUL,$(DOSLIBS);
  966. <<
  967.  
  968. uustatn.exe: $(UUSTATOBJ) $(LIBCOMM) $(LIBNT)
  969.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUSTATOBJ) $(NTLIBS)
  970.  
  971. uustatp.exe:     $(DEFFILE)  $(UUSTATOBJ) $(LIBCOMM) $(LIBOS2)
  972.         $(LINKER) $(LINKPOPT) @<<
  973. $(UUSTATOBJ)
  974. $@,NUL,$(OS2LIBS)
  975. $(DEFFILE)
  976. <<
  977.  
  978. uustatr.exe:      $(UUSTATOBJ) $(LIBCOMM) $(LIBDOS)
  979.         $(LINKER) $(LINKROPT) @<<
  980. $(UUSTATOBJ)
  981. $@,NUL,$(DOSLIBS);
  982. <<
  983.  
  984. uusubn.exe: $(UUSUBOBJ) $(LIBCOMM) $(LIBNT)
  985.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUSUBOBJ) $(NTLIBS)
  986.  
  987. uusubp.exe:      $(DEFFILE) $(UUSUBOBJ) $(LIBCOMM) $(LIBOS2)
  988.         $(LINKER) $(LINKPOPT) @<<
  989. $(UUSUBOBJ)
  990. $@,NUL,$(OS2LIBS)
  991. $(DEFFILE)
  992. <<
  993.  
  994. uusubr.exe:      $(UUSUBOBJ)  $(LIBCOMM) $(LIBDOS)
  995.         $(LINKER) $(LINKROPT) @<<
  996. $(UUSUBOBJ)
  997. $@,NUL,$(DOSLIBS);
  998. <<
  999.  
  1000. uuxn.exe: $(UUXOBJ) $(LIBCOMM) $(LIBNT)
  1001.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUXOBJ) $(NTLIBS)
  1002.  
  1003. uuxp.exe:      $(DEFFILE) $(UUXOBJ) $(LIBCOMM) $(LIBOS2)
  1004.         $(LINKER) $(LINKPOPT) @<<
  1005. $(UUXOBJ)
  1006. $@,NUL,$(OS2LIBS)
  1007. $(DEFFILE)
  1008. <<
  1009.  
  1010. uuxr.exe:      $(UUXOBJ)  $(LIBCOMM) $(LIBDOS)
  1011.         $(LINKER) $(LINKROPT) @<<
  1012. $(UUXOBJ)
  1013. $@,NUL,$(DOSLIBS);
  1014. <<
  1015.  
  1016. uuxqtn.exe: $(UUXQTOBJ) $(LIBCOMM) $(LIBNT)
  1017.         $(LINKER) $(LINKNOPT) /OUT:$@ $(UUXQTOBJ) $(NTLIBS)
  1018.  
  1019. uuxqtp.exe:      $(DEFFILE) $(UUXQTOBJ) $(LIBCOMM) $(LIBOS2)
  1020.         $(LINKER) $(LINKPOPT) @<<
  1021. $(UUXQTOBJ)
  1022. $@,NUL,$(OS2LIBS)
  1023. $(DEFFILE)
  1024. <<
  1025.  
  1026. uuxqtr.exe:      $(UUXQTOBJ) $(LIBCOMM) $(LIBDOS)
  1027.         $(LINKER) $(LINKROPT) @<<
  1028. $(UUXQTOBJ)
  1029. $@,NUL,$(DOSLIBS);
  1030. <<
  1031.  
  1032. testulib.exe:   $(OBJ)\testulib.obj $(OBJ)\ulib.obj $(OBJ)\commfifo.obj \
  1033.                 $(LIBCOMM) $(LIBDOS)
  1034.         $(LINKER) $(LINKROPT) @<<
  1035. $(OBJ)\testulib.obj $(OBJ)\ulib.obj $(OBJ)\commfifo.obj
  1036. $@,NUL,$(DOSLIBS);
  1037. <<
  1038.  
  1039. # *--------------------------------------------------------------------*
  1040. # *                         Definition files                           *
  1041. # *--------------------------------------------------------------------*
  1042.  
  1043. $(TEMP)\expirep.def:     $(MAKEFILE)
  1044.        copy << $@
  1045. name 'EXPIRE UUPC/extended $(VERS)' windowcompat newfiles
  1046. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1047. stacksize 8192
  1048. exetype OS2
  1049. <<
  1050.  
  1051. $(TEMP)\fmtp.def:     $(MAKEFILE)
  1052.        copy << $@
  1053. name 'FMT UUPC/extended $(VERS)' windowcompat newfiles
  1054. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1055. stacksize 8192
  1056. exetype OS2
  1057. <<
  1058.  
  1059. $(TEMP)\gensigp.def:     $(MAKEFILE)
  1060.        copy << $@
  1061. name 'GENSIG UUPC/extended $(VERS)' windowcompat newfiles
  1062. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1063. stacksize 8192
  1064. exetype OS2
  1065. <<
  1066.  
  1067. $(TEMP)\mailp.def:     $(MAKEFILE)
  1068.        copy << $@
  1069. name 'MAIL UUPC/extended $(VERS)' windowcompat newfiles
  1070. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1071. stacksize 8192
  1072. exetype OS2
  1073. <<
  1074.  
  1075. $(TEMP)\novrstrp.def:  $(MAKEFILE)
  1076.        copy << $@
  1077. name 'NOVRSTRK UUPC/extended $(VERS)' windowcompat newfiles
  1078. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1079. stacksize 8192
  1080. exetype OS2
  1081. <<
  1082.  
  1083. $(TEMP)\rmailp.def:     $(MAKEFILE)
  1084.        copy << $@
  1085. name 'RMAIL UUPC/extended $(VERS)' windowcompat newfiles
  1086. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1087. stacksize 8192
  1088. exetype OS2
  1089. <<
  1090.  
  1091. $(TEMP)\rnewsp.def:     $(MAKEFILE)
  1092.        copy << $@
  1093. name 'RNEWS UUPC/extended $(VERS)' windowcompat newfiles
  1094. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1095. stacksize 8192
  1096. exetype OS2
  1097. <<
  1098.  
  1099. $(TEMP)\uucicop.def:     $(MAKEFILE)
  1100.        copy << $@
  1101. name 'UUCICO UUPC/extended $(VERS)' windowcompat newfiles
  1102. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1103. stacksize 8192
  1104. exetype OS2
  1105. <<
  1106.  
  1107. $(TEMP)\uucpp.def:     $(MAKEFILE)
  1108.        copy << $@
  1109. name 'UUCP UUPC/extended $(VERS)' windowcompat newfiles
  1110. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1111. stacksize 8192
  1112. exetype OS2
  1113. <<
  1114.  
  1115. $(TEMP)\uunamep.def:     $(MAKEFILE)
  1116.        copy << $@
  1117. name 'UUNAME UUPC/extended $(VERS)' windowcompat newfiles
  1118. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1119. stacksize 8192
  1120. exetype OS2
  1121. <<
  1122.  
  1123. $(TEMP)\uupollp.def:     $(MAKEFILE)
  1124.        copy << $@
  1125. name 'UUPOLL UUPC/extended $(VERS)' windowcompat newfiles
  1126. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1127. stacksize 8192
  1128. exetype OS2
  1129. <<
  1130.  
  1131. $(TEMP)\uusubp.def:     $(MAKEFILE)
  1132.        copy << $@
  1133. name 'UUSUB UUPC/extended $(VERS)' windowcompat newfiles
  1134. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1135. stacksize 8192
  1136. exetype OS2
  1137. <<
  1138.  
  1139. $(TEMP)\uustatp.def:     $(MAKEFILE)
  1140.        copy << $@
  1141. name 'UUSTAT UUPC/extended $(VERS)' windowcompat newfiles
  1142. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1143. stacksize 8192
  1144. exetype OS2
  1145. <<
  1146.  
  1147. $(TEMP)\uuxp.def:     $(MAKEFILE)
  1148.        copy << $@
  1149. name 'UUX UUPC/extended $(VERS)' windowcompat newfiles
  1150. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1151. stacksize 8192
  1152. exetype OS2
  1153. <<
  1154.  
  1155. $(TEMP)\uuxqtp.def:     $(MAKEFILE)
  1156.        copy << $@
  1157. name 'UUXQT UUPC/extended $(VERS)' windowcompat newfiles
  1158. Description 'Changes Copyright (c) 1990-1993 Kendra Electronic Wonderworks, All Rights Reserved'
  1159. stacksize 8192
  1160. exetype OS2
  1161. <<
  1162.  
  1163. # *--------------------------------------------------------------------*
  1164. # *                        Clean up after rn                           *
  1165. # *--------------------------------------------------------------------*
  1166.  
  1167. rn-clean:
  1168.                 - del $(RNOBJ)
  1169.                 - del rnp.exe
  1170.  
  1171. # *--------------------------------------------------------------------*
  1172. # *                          The zip files                             *
  1173. # *--------------------------------------------------------------------*
  1174.  
  1175. $(OS2ZIPV2):  $(INSTALLP2)
  1176.        - mkdir $(SRC)\$(VERS)
  1177.        -12 $(ZIP) -o- -u $@ @<<
  1178.        $(?: =^
  1179.        )
  1180. <<
  1181.        pkbanner $@  <<
  1182. Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (1 of 3)
  1183.  
  1184. Changes and Compilation Copyright (c) 1990-1993 by Kendra Electronic
  1185. Wonderworks.  May be distributed freely if original source and documentation
  1186. files are included.  Please direct all questions on UUPC/extended to
  1187. help@kew.com.
  1188. <<
  1189.  
  1190. $(OS2ZIPV3):  $(INSTALLP3) $(INSTALLPS)
  1191.        - mkdir $(SRC)\$(VERS)
  1192.        -12 $(ZIP) -o- -u $@ @<<
  1193.        $(?: =^
  1194.        )
  1195. <<
  1196.        pkbanner $@  <<
  1197. Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (2 of 3)
  1198.  
  1199. Changes and Compilation Copyright (c) 1990-1993 by Kendra Electronic
  1200. Wonderworks.  May be distributed freely if original source and documentation
  1201. files are included.  Please direct all questions on UUPC/extended to
  1202. help@kew.com.
  1203. <<
  1204.  
  1205. $(OS2ZIPV4):  $(INSTALLP4)
  1206.        - mkdir $(SRC)\$(VERS)
  1207.        -12 $(ZIP) -o- -u $@ @<<
  1208.        $(?: =^
  1209.        )
  1210. <<
  1211.        pkbanner $@  <<
  1212. Kendra Electronic Wonderworks: UUPC/extended $(VERS) OS/2 executables (3 of 3)
  1213.  
  1214. Changes and Compilation Copyright (c) 1990-1993 by Kendra Electronic
  1215. Wonderworks.  May be distributed freely if original source and documentation
  1216. files are included.  Please direct all questions on UUPC/extended to
  1217. help@kew.com.
  1218. <<
  1219.  
  1220. # *--------------------------------------------------------------------*
  1221. # *                       Windows/NT ZIP files                         *
  1222. # *--------------------------------------------------------------------*
  1223.  
  1224. $(WNTZIPVA):  $(INSTALLN2)
  1225.        - mkdir $(SRC)\$(VERS)
  1226.        -12 $(ZIP) -o- -u $@ @<<
  1227.        $(?: =^
  1228.        )
  1229. <<
  1230.        pkbanner $@  <<
  1231. Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win/NT executables (1 of 3)
  1232.  
  1233. Special credit to David M. Watt for performing Windows/NT port.
  1234.  
  1235. Changes and Compilation Copyright (c) 1990-1993 by Kendra Electronic
  1236. Wonderworks.  May be distributed freely if original source and documentation
  1237. files are included.  Please direct all questions on UUPC/extended to
  1238. help@kew.com.
  1239. <<
  1240.  
  1241. $(WNTZIPVB):  $(INSTALLN3) $(INSTALLNS)
  1242.        - mkdir $(SRC)\$(VERS)
  1243.        -12 $(ZIP) -o- -u $@ @<<
  1244.        $(?: =^
  1245.        )
  1246. <<
  1247.        pkbanner $@  <<
  1248. Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win/NT exe
  1249.  
  1250. Special credit to David M. Watt for performing Windows/NT port.
  1251.  
  1252. Changes and Compilation Copyright (c) 1990-1993 by Kendra Electronic
  1253. Wonderworks.  May be distributed freely if original source and documentation
  1254. files are included.  Please direct all questions on UUPC/extended to
  1255. help@kew.com.
  1256. <<
  1257.  
  1258. $(WNTZIPVC):  $(INSTALLN4)
  1259.        - mkdir $(SRC)\$(VERS)
  1260.        -12 $(ZIP) -o- -u $@ @<<
  1261.        $(?: =^
  1262.        )
  1263. <<
  1264.        pkbanner $@  <<
  1265. Kendra Electronic Wonderworks: UUPC/extended $(VERS) Win/NT executables (3 of 3)
  1266.  
  1267. Special credit to David M. Watt for performing Windows/NT port.
  1268.  
  1269. Changes and Compilation Copyright (c) 1990-1993 by Kendra Electronic
  1270. Wonderworks.  May be distributed freely if original source and documentation
  1271. files are included.  Please direct all questions on UUPC/extended to
  1272. help@kew.com.
  1273. <<
  1274.  
  1275. # *--------------------------------------------------------------------*
  1276. # *                    Build the object libraries                      *
  1277. # *--------------------------------------------------------------------*
  1278.  
  1279. zz$(LIBCOMM): $(LIBLIST)
  1280.         - del $(LIBCOMM)
  1281.         @echo $@     >  $(WORKFILE)
  1282.         @echo y      >> $(WORKFILE)
  1283.       ! @echo +$(?)$(CARET)& >> $(WORKFILE)
  1284.         @echo ,nul;   >> $(WORKFILE)
  1285.         @echo $(LIBCOMM) >> $(WORKFILE)
  1286.         lib @$(WORKFILE)
  1287.  
  1288. !IFDEF WINNT
  1289.  
  1290. $(LIBCOMM): $(LIBLIST)
  1291.          lib32 /out:$@ $(LIBLIST)
  1292.  
  1293. !ELSE
  1294. $(LIBCOMM): $(LIBLIST)
  1295.         lib /noignorecase $@ @<<
  1296. -+$(?: =&^
  1297. -+)
  1298. nul;
  1299. <<
  1300.  
  1301. !ENDIF
  1302.  
  1303. $(LIBDOS): $(LIBDOSLIST)
  1304.         lib /noignorecase $@ @<<
  1305. -+$(?: =&^
  1306. -+)
  1307. nul;
  1308. <<
  1309.  
  1310. $(LIBOS2): $(LIBOS2LIST)
  1311.         lib /noignorecase $@ @<<
  1312. -+$(?: =&^
  1313. -+)
  1314. nul;
  1315. <<
  1316.  
  1317. $(LIBNT): $(LIBNTLIST)
  1318.         lib32 /out:$@ $(LIBNTLIST)
  1319.  
  1320. # *--------------------------------------------------------------------*
  1321. # *                Compile the various object files.                   *
  1322. # *--------------------------------------------------------------------*
  1323.  
  1324. $(OBJ)\deliver2.obj: $(MAIL)\deliver.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
  1325.         $(LIBX)\usertabl.h $(LIBX)\hlib.h $(LIBX)\getseq.h $(MAIL)\address.h\
  1326.         $(MAIL)\deliver.h $(LIBX)\pushpop.h $(LIBX)\import.h $(LIBX)\ssleep.h
  1327.         $(CC) $(CCOPT) /DFAMILYAPI $(MAIL)\deliver.c
  1328.  
  1329. $(OBJ)\mlib2.obj: $(MAIL)\mlib.c $(LIBX)\lib.h $(LIBX)\hlib.h
  1330.         $(CC) $(CCOPT) /DFAMILYAPI $(MAIL)\mlib.c
  1331.  
  1332. $(OBJ)\nbstime2.obj:  $(UUCICO)\nbstime.c $(LIBX)\lib.h $(LIBX)\arpadate.h\
  1333.         $(UUCICO)\dcp.h $(UUCICO)\dcpsys.h $(LIBX)\hostable.h\
  1334.         $(UUCICO)\nbstime.h $(UUCICO)\script.h $(LIBX)\security.h\
  1335.         $(UUCICO)\ulib.h
  1336.         $(CC) $(CCOPT) /DFAMILYAPI $(UUCICO)\nbstime.c
  1337.  
  1338. $(OBJ)\safeio2.obj: $(LIBX)\safeio.c $(LIBX)\lib.h $(LIBX)\safeio.h
  1339.         $(CC) $(CCOPT) /DFAMILYAPI $(LIBX)\safeio.c
  1340.  
  1341. $(OBJ)\safeout2.obj: $(LIBX)\safeout.c $(LIBX)\lib.h $(LIBX)\safeio.h
  1342.         $(CC) $(CCOPT) /DFAMILYAPI $(LIBX)\safeout.c
  1343.  
  1344. $(OBJ)\scrsize2.obj: $(LIBX)\scrsize2.c $(LIBX)\lib.h $(LIBX)\scrsize.h
  1345.         $(CC) $(CCOPT) $(LIBX)\$(@B).c
  1346.  
  1347. $(OBJ)\ssleep2.obj: $(LIBX)\ssleep.c $(LIBX)\lib.h $(LIBX)\ssleep.h
  1348.         $(CC) $(CCOPT) /DFAMILYAPI $(LIBX)\ssleep.c
  1349.  
  1350. $(OBJ)\deliver.obj: $(MAIL)\deliver.c $(LIBX)\lib.h $(LIBX)\hostable.h $(LIBX)\security.h\
  1351.         $(LIBX)\usertabl.h $(LIBX)\hlib.h $(LIBX)\getseq.h $(MAIL)\address.h\
  1352.         $(MAIL)\deliver.h $(LIBX)\pushpop.h $(LIBX)\import.h $(LIBX)\ssleep.h
  1353.         $(CC) $(CCOPT) $(MAIL)\deliver.c
  1354.  
  1355. $(OBJ)\mlib.obj: $(MAIL)\mlib.c $(LIBX)\lib.h $(LIBX)\hlib.h
  1356.         $(CC) $(CCOPT) $(MAIL)\mlib.c
  1357.  
  1358. $(OBJ)\nbstime.obj:  $(UUCICO)\nbstime.c $(LIBX)\lib.h $(LIBX)\arpadate.h\
  1359.         $(UUCICO)\dcp.h $(UUCICO)\dcpsys.h $(LIBX)\hostable.h\
  1360.         $(UUCICO)\nbstime.h $(UUCICO)\script.h $(LIBX)\security.h\
  1361.         $(UUCICO)\ulib.h
  1362.         $(CC) $(CCOPT) $(UUCICO)\nbstime.c
  1363.  
  1364. $(OBJ)\safeio.obj: $(LIBX)\safeio.c $(LIBX)\lib.h $(LIBX)\safeio.h
  1365.         $(CC) $(CCOPT) $(LIBX)\safeio.c
  1366.  
  1367. $(OBJ)\safeout.obj: $(LIBX)\safeout.c $(LIBX)\lib.h $(LIBX)\safeio.h
  1368.         $(CC) $(CCOPT) $(LIBX)\safeout.c
  1369.  
  1370. $(OBJ)\scrsiznt.obj: $(LIBX)\scrsiznt.c $(LIBX)\lib.h $(LIBX)\scrsize.h
  1371.         $(CC) $(CCOPT) $(LIBX)\$(@B).c
  1372.  
  1373. $(OBJ)\ssleep.obj: $(LIBX)\ssleep.c $(LIBX)\lib.h $(LIBX)\ssleep.h
  1374.         $(CC) $(CCOPT) $(LIBX)\ssleep.c
  1375.  
  1376. # *--------------------------------------------------------------------*
  1377. # *     The timestamp module has a reference to this MAKEFILE,         *
  1378. # *     which insures whenever we change the version number the        *
  1379. # *     time stamp gets re-generated.                                  *
  1380. # *--------------------------------------------------------------------*
  1381.  
  1382. $(TIMESTMP): $(LIBX)\timestmp.c $(LIBX)\lib.h $(LIBX)\timestmp.h\
  1383. !IFDEF WINNT
  1384.         $(LIBX)\win32ver.h \
  1385. !ENDIF
  1386.         $(MAKEFILE) $(REGEN)
  1387. !IFDEF WINNT
  1388.         $(CC) $(CCOPT) $(LIBX)\$(@B).c
  1389. !ELSE
  1390.         $(CC) $(CCOPT) -DUUPCV="\"$(VERS)\"" $(LIBX)\$(@B).c
  1391. !ENDIF
  1392.  
  1393. $(LIBX)\win32ver.h: $(MAKEFILE) $(REGEN)
  1394.         copy << $@
  1395. #define UUPCV "$(VERS)"         // UUPC/extended version number for NT
  1396. <<
  1397.  
  1398. $(OBJ)\uupoll2.obj: $(UTIL)\uupoll.c $(LIBX)\getopt.h $(LIBX)\lib.h\
  1399.         $(LIBX)\timestmp.h $(LIBX)\ssleep.h $(LIBX)\arpadate.h
  1400.         $(CC) $(CCOPT) /DFAMILYAPI $(UTIL)\uupoll.c
  1401.  
  1402. $(OBJ)\uupoll.obj: $(UTIL)\uupoll.c $(LIBX)\getopt.h $(LIBX)\lib.h\
  1403.         $(LIBX)\timestmp.h $(LIBX)\ssleep.h $(LIBX)\arpadate.h
  1404.         $(CC) $(CCOPT) $(UTIL)\uupoll.c
  1405.  
  1406. # *--------------------------------------------------------------------*
  1407. # *     Force a regeneration of the time stamp/version module.         *
  1408. # *--------------------------------------------------------------------*
  1409.  
  1410. regen:  $(LIBX)\timestmp.c
  1411.         - del $(OBJ)\timestmp.obj
  1412.  
  1413. # *--------------------------------------------------------------------*
  1414. # *   This is a special case, the assembler module which handles       *
  1415. # *   our I/O to the serial port for the DOS version.                  *
  1416. # *--------------------------------------------------------------------*
  1417.  
  1418. $(OBJ)\commfifo.obj: $(UUCICO)\commfifo.asm
  1419.         $(MASM) $(MASMOPTS) $(UUCICO)\$(@B) ,$@;
  1420.  
  1421. # *--------------------------------------------------------------------*
  1422. # *         Generate the source browser database for the PWB           *
  1423. # *--------------------------------------------------------------------*
  1424.  
  1425. $(MAKEFILE).bsc: $(SBRS)
  1426.         pwbrmake @<<
  1427. /o $(MAKEFILE).bsc $(SBRS)
  1428. <<
  1429.  
  1430. $(OBJ):
  1431.         - mkdir $(OBJ)
  1432.